package ru.simplemaps.osmapi;

import android.content.Context;
import org.apache.http.impl.client.DefaultHttpClient;
import ru.simplemaps.map.elements.ElementType;
import ru.simplemaps.map.elements.PointElementType;
import ru.simplemaps.map.provider.MapElementProvider;
import ru.simplemaps.map.provider.MapProvider;
import ru.simplemaps.osmapi.cache.impl.MyCacheImpl;
import ru.simplemaps.osmapi.providers.PointElementProvider;

import java.util.HashMap;
import java.util.Map;

/**
 * Загрузчик карты из OSM
 *
 * @author enaku_adm
 * @since 29.07.2010 12:02:08
 */
public class OSMMapProvider implements MapProvider {
    private final Map<ElementType, MapElementProvider> providers = new HashMap<ElementType, MapElementProvider>();

    public OSMMapProvider(Context ctx) {
        FullOSMService service = new FullOSMService(
                new OSMService(new DefaultHttpClient()),
                new MyCacheImpl(ctx)
        );

        providers.put(PointElementType.get(), new PointElementProvider(service));
    }

    public boolean cachingNeeded() {
        /**
         * Данные из OSM необходимо кэшировать
         */
        return true;
    }

    public Map<ElementType, MapElementProvider> getProviders() {
        return providers;
    }
}
